/**
 * 项目名：化工企业安全生产信息化管理平台
 * 日期：    2020-03-25 22:54:13
 * Copyright (c) 2015- -版权所有
 */

package com.joysuch.wwyt.bp.bean;

import com.joysuch.wwyt.core.bean.BaseAttachmentBean;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import java.util.List;

@Data
public class BpAccidentListBean implements java.io.Serializable {

    // ID
    private Long id;
    // 编号
    private String code;
    // 名称
    private String name;
    // 发生时间
    private java.util.Date happenTime;
    // 发生地点坐标
    private String locationCoords;
    // 发生地点名称
    private String locationName;
    // 事故原因
    private Long reason;
    private String reasonName;
    // 上报人
    private Long reportorId;
    private String reportorName;
    // 上报时间
    private java.util.Date reportTime;
    // 发生区域
    private Long riskDistrictId;
    private String riskDistrictName;
    // 附件ID, 附件
    private BaseAttachmentBean attachment;
    // 事故原因分析
    private String reasonAnalysis;
    // 事故描述
    private String reasonDescription;
    // 状态
    private Byte state;
    // 事故等级
    private Integer level;
    // 事故等级名称
    private String levelName;
    // 整改责任人
    private Long correctiveInChargeUserId;
    private String correctiveInChargeUserName;
    // 责任人处理结果
    private String inChargeUserProcessResult;
    // 人员伤亡情况
    private String casualties;
    // 火灾损失影响
    private String lossOfFire;
    // 危化品泄露影响
    private String hchRevealConsequence;
    // 设备事故影响
    private String facilityAccidentConsequence;
    // 工艺事故影响
    private String craftAccidentConsequence;
    // 事故链, 附件
    private BaseAttachmentBean accidentChainFile;
    // 事故树分析表, 附件
    private BaseAttachmentBean accidentTreeAnalyseTableFile;
    // 最终调查报告, 附件
    private BaseAttachmentBean finalReportFile;
    // 事故部门
    private Long departId;
    private String departName;

    @ApiModelProperty("审核状态")
    private Integer auditState;
    private String auditStateName;


    //事故类别
    @ApiModelProperty("事故类别")
    private String accidentCategories;
    //建议完成期限
    @ApiModelProperty("建议完成期限")
    @Length(max = 600, message = "建议完成期限长度不超过{max}字符")
    private String suggestedCompletionPeriod;
    //审批意见
    @ApiModelProperty("审批意见")
    @Length(max = 600, message = "审批意见长度不超过{max}字符")
    private String approvalOpinion;


    private List<BpAccidentCorrectiveMeasureDetailBean> correctiveMeasures;

    @Data
    public static class SearchBpAccident implements java.io.Serializable {

        // 事故原因
        private Long reason;
        // 事故部门
        private Long departId;
        // 状态
        private Byte state;

        private List<Integer> auditStates;
    }

}
